Friday, August 7, 2009
Software Engineering According To Raj. Uni. BCA 3rd Year
S/W Project planning Objectives, Decomposition techniques : S/W Sizing, Problem-based estimation, Process based estimation, Cost Estimation Models : COCOMO Model.
S/W Design : Objectives, Principles, Concepts, Design methodologies Data design, Architectural design, procedural design, Object oriented concepts
Testing fundamentals : Objectives, principles, testability, Test cases: White box & Black box testing strategies: verification & validation, unit test, integration testing, validation, testing, system testing
Software Engineering
Software engineering is application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.[1]
The term software engineering first appeared in the 1968 NATO Software Engineering Conference and was meant to provoke thought regarding the current "software crisis" at the time.[2] [3] Since then, it has continued as a profession and field of study dedicated to creating software that is of higher quality, more affordable, maintainable, and quicker to build. Since the field is still relatively young compared to its sister fields of engineering, there is still much debate around what software engineering actually is, and if it conforms to the classical definition of engineering. It has grown organically out of the limitations of viewing software as just programming. "Software development" is a much used term in industry which is more generic and does not necessarily subsume the engineering paradigm. Although it is questionable what impact it has had on actual software development over the last more than 40 years,[4][5] the field's future looks bright according to Money Magazine and Salary.com who rated "software engineering" as the best job in America in 2006.[6]
Computer engineering as an academic discipline
The first accredited computer engineering degree program in the United States was established at Case Western Reserve University in 1971; as of October 2004 there were 170 ABET-accredited computer engineering programs in the US.[3]
Due to increasing job requirements for engineers, who can design and manage all forms of computer systems used in industry, some tertiary institutions around the world offer a bachelor's degree generally called computer engineering. Both computer engineering and electronic engineering programs include analog and digital circuit design in their curricula. As with most engineering disciplines, having a sound knowledge of mathematics and sciences is necessary for computer engineers.
In many institutions, computer engineering students are allowed to choose areas of in-depth study in their junior and senior year, as the full breadth of knowledge used in the design and application of computers is well beyond the scope of an undergraduate degree. The joint IEEE/ACM Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering defines the core knowledge areas of computer engineering as[4]
- Algorithms
- Computer architecture and organization
- Computer systems engineering
- Circuits and signals
- Database systems
- Digital logic
- Digital signal processing
- Electronics
- Embedded systems
- Human-computer interaction
- Interactive Systems Engineering
- Operating systems
- Programming fundamentals
- Social and Professional issues
- Software engineering
- VLSI design and fabrication
The breadth of disciplines studied in computer engineering is not limited to the above subjects but can include any subject found in engineering.
Coputer Engineering
Computer Engineering (also called Electronic and Computer Engineering , or Computer Systems Engineering) is a discipline that combines both Electrical Engineering and Computer Science.[1] Computer engineers usually have training in electrical engineering, software design and hardware-software integration instead of only software engineering or electrical engineering. Computer engineers are involved in many aspects of computing, from the design of individual microprocessors, personal computers, and supercomputers, to circuit design. This field of engineering not only focuses on how computer systems themselves work, but also how they integrate into the larger picture.[2]
Usual tasks involving computer engineers include writing software and firmware for embedded microcontrollers, designing VLSI chips, designing analog sensors, designing mixed signal circuit boards, and designing operating systems.[citation needed] Computer engineers are also suited for robotics research,[citation needed] which relies heavily on using digital systems to control and monitor electrical systems like motors, communications, and sensors.