You are on page 1of 10

Chapter 1

1.1 Software life cycle models: Waterfall, RAD, Spiral, Open-source, Agile process. Chapter 1

1.2 Understanding software process, Process metric,CMM levels, Chapter 25

1.3 Planning & Estimation: Product metrics Estimation- LOC, FP, COCOMO models. Chapter 26

1.4 Project Management activities : Planning, Scheduling and Tracking. Chapter 27

1
Definition of Software
Engineering
• Software is more than just a program code. A program is
an executable code, which serves some computational
purpose. Software is considered to be collection of
executable programming code, associated libraries and
documentations. Software, when made for a specific
requirement is called software product.

• Engineering on the other hand, is all about developing


products, using well-defined, scientific principles and
methods.

2
3
Software Engineering - Defined

• (1969) Software engineering is the establishment and use of sound


engineering principles in order to obtain economically software that is
reliable and works efficiently on real machines

• Software engineering is an engineering branch associated with


development of software product using well-defined scientific principles,
methods and procedures. The outcome of software engineering is an
efficient and reliable software product.

• (IEEE) The application of a systematic, disciplined, quantifiable approach


to the development, operation, and maintenance of software; that is, the
application of engineering to software.

4
Software Engineering is a
Layered Technology

Tools

Methods

Processes

Quality Focus
5
Process, Methods, and Tools
• Process
− Holds technology and time for development of software.
– Provides the glue that holds the layers together; enables rational and timely
development; provides a framework for effective delivery of technology; forms
the basis for management; provides the context for technical methods, work
products, milestones, quality measures, and change management
• Quality
− Software Engineering rests on solid quality foundation.
− Quality assurance leads to more effective approach for software development.
• Methods
− Provide the technical "how to" for building software; rely on a set of basic
principles; encompass a broad array of tasks; include modeling activities
• Tools
− Provide automated or semi-automated support for the process and methods.
− Tools can also be integrated so that they can also be used for other system
software development.
6
Prescriptive Process Model

• Prescriptive process models advocate an orderly approach to


software engineering.

• Defines a distinct set of activities, actions, tasks, milestones, and work


products that are required to engineer high-quality software.

• The activities may be linear, incremental, or evolutionary.

• Software process models prescribe a workflow in which the software


development process elements are interrelated to one another.

7
Generic Process Framework
• Communication
– Involves communication among the customer and other stake holders; encompasses
requirements gathering.
– All possible requirements of the system to be developed are captured in this phase
and documented in a requirement specification doc.
• Planning
– Establishes a plan for software engineering work; addresses technical tasks,
resources, work products, and work schedule
• Modeling (Analyze, Design)
– Encompasses the creation of models to better understand the requirements and the
design.
– The requirement specifications are studied in this phase and system design is
prepared. System Design helps in specifying hardware and system requirements
and also helps in defining overall system architecture.

8
Generic Process Framework
• Construction (Code, Test)
– Combines code generation and testing to uncover errors.
– With inputs from system design, the system is first developed in small
programs called units and integrated. Each unit is developed and tested for
its functionality which is referred to as Unit Testing.
– Post integration the entire system is tested for any faults and failures.

• Deployment
– Involves delivery of software to the customer for evaluation and feedback

9
Waterfall Model
(Description)
• Oldest software lifecycle model and best understood by upper management.
• Used when requirements are well understood and risk is low.
• Work flow is in a linear (i.e., sequential) fashion.
• Used often with well-defined adaptations or enhancements to current
software.
• Requirements are very well documented, clear and fixed.
• Product definition is stable.
• Technology is understood and is not dynamic.
• There are no ambiguous requirements.
• The project is short.

10

You might also like