Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering Process Lecture -2:. –Software development life cycle –overview of software development process models.

Similar presentations


Presentation on theme: "Software Engineering Process Lecture -2:. –Software development life cycle –overview of software development process models."— Presentation transcript:

1 Software Engineering Process Lecture -2:

2 –Software development life cycle –overview of software development process models

3 Software development life cycle – SDLC – System engineering – requirement analysis – design – implementation – testing – deployment – maintenance

4 Software Engineering is a Layered Technology Any Eng. Approach must rest on an organizational commitment to quality. The bedrock that supports SE is a focus on quality. There are three layers of SE: 1)Process Layer 2)Methods Layer 3)Tools Layer 1)Process Layer:the foundation of SE is the process layer. SE process is a glue that holds all the technology layers together and enables rational and timely development of computer software.

5 Process defines the framework for a set (of activities) of key process areas, that must be established for any effective delivery of SE technology. The key process areas forms the basis for management control of software projects and establishes an environment in which the technical methods may be applied, work products (Models, documents, data, reports, forms, etc.) are produced. -Milestones are established -Quality is ensured -Change is properly managed

6 The Method Layer SE methods provide the technical how to’s for building software. Methods encompass a broad array of tasks that include requirements analysis, design, program construction, testing and maintenance. Modeling activities are ERD, DFD, STD and DD models and others descriptive techniques PDL and Pseudo code.

7 Tools Layer: SE provides automated and semi automated support for process and methods when tools are integrate that the information produced by one tool may be used by other tool i.e., a system for support of Software development called as computer aided SE ‘CASE’. CASE combines S/W, H/W and SE database (repository containing important information about analysis, design, program construction and testing). To create a SE environment that is ambiguous to CAD/CAE (Computer aided design/engineering.

8 A Generic view of SE Engineering is the analysis, design, construction, verification and management of technical entities. Regardless of entity to be engineered, the following questions must be asked and answered What is the problem to be solved? What characteristics of the entity are used to solve the problem? How will the entity be realized? How will the entity be constructed? What approach will be used to uncover errors that were made in the design and construction of the entity? How will the entity be supported over the long term when corrections, adaptations, and enhancements are requested by users of the entity?

9 Phases The work that is associated with engineering can be categorized into generic phases, regardless of application area, project size, or complexity. Each phase answered one or more questions noted above. Phase 1: The Definition phase: Focuses on “What”. During definition phase the software developer attempts to identify:

10 What information is to be processed? What functions and performance are desired? What system behavior can be expected? What are the interfaces to be developed? What design constraints? What validation criteria are required to define a successful system. The key requirements of the system and the software are identified. Although the methods applied during the definition phase will vary depending upon the software engineering paradigm but three of them are the major tasks will occur in some form: System or information engineering Software project management Requirements analysis

11 Phase 2: The Development phase: Focuses on “How”. During development phase a software engineer attempts to define: How the data are to be structured? How functions are to be implemented within a software architecture? How procedural details are to be implemented? How the interfaces are to be characterized? How the design is to be translated into a programming language? How testing will be performed? The methods applied during development phase may vary but three specific tasks will always occur, software design, code generation and software testing.

12 Phase 3: The Maintenances phase: Focuses on “Change”. That is associated with error correction, adaptation and changes due to the enhancements brought by changing customer requirements. The maintenance phase reapplies the definition and development phases but does so in the context of existing software. Four types of changes are encountered during the support phase. 1)Correction: Even with best quality assurance it is likely that customer will uncover defects in the software. Corrective maintenance changes the software to correct defects. 2)Adaptation: Over time original environment (e.g. CPU, operating system, business rules, external product characteristics) for which the software developed is likely to change. Adaptive maintenance results in modification to the software to accommodate changes to its external environment.

13 3.Enhancement: As software used the customer/user will organize additional functions that will provide benefit. Perfective maintenance extends the software beyond its original functional requirements. 4.Prevention: Computer software deteriorates due to change and because of this prevention maintenance often called software reengineering must be conducted to enable the software to serve the needs of its end users. In essence preventive maintenance makes changes to computer programs so that they can be more easily corrected, adapted and enhanced.

14 Umbrella Activities Software project tracking and control Formal technical reviews Software quality reviews Software configuration management Document preparation and production Reusability management Measurement Risk management

15 Introduction to CMM CMM stands for Capability Maturity Model CMM is Software Process Maturity Framework. CMM is an effort to solve the software crisis

16 Introduction to CMM Evolution of CMM November 1986–SEI started the development of framework September 1987 Release of brief description of framework 1991 – Development of CMM after four years of evolution December 2001– Publication of version 1.1 December 2003 - Capability Maturity Model Integration (CMMI) Model Integration (CMMI)

17 Introduction to CMM

18 SEI Capability Maturity Model LevelCharacteristicKey Process Areas Optimizing (5) Continuous process capability improvement Process change management Technology change management Defect prevention Managed (4) Product quality planning; tracking of measured software process Software quality management Quantitative process management Defined (3) Software process defined and institutionalized to provide product quality control Peer reviews Inter group coordination Software product engineering Integrated software management Training program Organization process definition Organization process focus Repeatable (2) Management oversight and tracking project; stable planning and product baselines Software configuration management Software quality assurance Software subcontract management Software project tracking & oversight Software project planning Requirements management Initial (1) Ad hoc(success depends on heroes) "People" Result

19 1)Initial:Software process  ad hoc, and occasionally even messy. Few processes  defined, and success depends on individual effort. 2)Repeatable:Basic project management processes are established to track cost, schedule, and functionality. Repeat earlier successes on projects with similar applications. 3)Defined: The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. 4)Managed: Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled. 5)Optimizing: Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.

20 Software Process Models: Waterfall Model Prototyping Model RAD (Rapid Application Development) Model Review of Software Engineering Concepts

21 Waterfall Model: Also known as: Classic life cycle Linear Sequential Model Phases: Analysis  Design  Code  Test  Maintenance Review of Software Engineering Concepts

22 Analysis: Requirement gathering System and software: Information Domain of s/w Required function Behavior Performance Interface Documentation of requirements Review of customer Review of Software Engineering Concepts

23 Design: Four attribute: Data structure S/W Architecture Interface representation Algorithmic Detail Design must be accessed for Quality before coding Design Documentation Review of Software Engineering Concepts

24 Coding: Design translated into machine readable form Testing: Conduct tests to uncover internal logical and external functional errors Whether or not Given input produces the required result Maintenance: Software is definitely needs the change when deliver to the customers Change occurs due to the external environment errors and also introducing new operating system or devices. Drawbacks ?????????? Review of Software Engineering Concepts

25 Drawbacks: Real projects rarely follow sequential flow Often difficult for a customer to state all the requirements Customer must have the patience resultant working project will be available until late in project time span Blocking state team members have to wait for other members to complete dependant tasks Blocking state : more prevalent in start and end of linear model Review of Software Engineering Concepts

26 The Prototyping Model: Listen to the customer | Quick design | Construction of prototype | Prototype is evaluated by the customer for further changes Review of Software Engineering Concepts

27 Drawbacks: rush to get a working s/w----- no one sees overall quality and long term maintainability Developers often makes compromises in order to get the prototype asap Often inefficient method becomes a part of project For example project once implemented inefficient algo, language, technique etc. Review of Software Engineering Concepts

28 The RAD model: Rapid Application development Incremental Software model that emphasizes on short develop cycle High speed adaptation of linear sequential model Fully functional sys in a very short time 60 to 90 days Business modeling what info drives business process What info is generated Who generates it Where it goes Who process it Data modeling Information flow is refined in to set of data objects Attributes of objects are identified Relationship Review of Software Engineering Concepts

29 Process modeling: Data objects are now transformed to achieve the information flow necessary to implement a business function Processing description are created for adding modifying deleting retrieving Application Generation: RAD uses reuse of existing program modules Automated tools are used for construction of s/w Testing and turnover: Reuse -  many program component are tested already Reduces overall testing time New components and all interfaces must be tested Drawbacks ?????? Review of Software Engineering Concepts

30 Drawbacks: Sufficient human resources need for many RAD teams Disaster if customer or s/w developers  lacks commitment Not all types of application suitable for RAD RAD is not suitable when technical risk is high Team 1Team 2 Team3 B.M B.M B.M D.M D.M D.M P.M P.M P.M A.M A.M A.M T.M T.M T.M Review of Software Engineering Concepts

31 Evolutionary Software Process Models: All complex systems evolves over time Business and product requirements often change as development proceeds So no straight path for an end product Limited version must be introduced to meet competitive or business pressure The linear sequential model is designed for straight-line development which means that a complete system will be delivered after the linear sequence is completed. The prototyping models is designed to assist the customer (or developer) in understanding requirements. In general it is not designed to deliver a production system.

32 Incremental Model: Proposed by Mills in 1980. Combines linear sequential model with iterative philosophy with the iterative. Each linear sequence produces a deliverable “increment” of the software. For example, a word processing software. In the first increment basic file management, editing, and document production and functions. In the second increment more sophisticated editing and document production capabilities. In the third increment spelling and grammar checking. In the fourth increment more advanced page layout capabilities.

33 The Incremental Model

34 Spiral model: Proposed by Boehm in 1988. Software is developed in series of incremental version During early days of development s/w is like a prototype Later iteration increasingly more complete version 6 task regions: 1.Customer communication—tasks required to establish effective communication b/w developer and customer 2.Planning—tasks required to define resources, timeliness and other project related information. 3.Risk analysis—tasks required to assess both technical and management risks. 4.Engineering—tasks required to build one or more representations of the application. 5.Construction and release—tasks required to construct, test, install and provide user support e.g., documentation and training. 6.Customer evaluation—tasks required to obtain customer feedback.

35 An Evolutionary (Spiral) Model

36 The concurrent development model: None Underdevelopment Awaiting changes Under review Under revision Baselined Done Analysis activity

37 Component based Development : Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. Process stages Component analysis; Requirements modification; System design with reuse; Development and integration. This approach is becoming increasingly used as component standards have emerged.

38

39 THE END OF CHAPTER


Download ppt "Software Engineering Process Lecture -2:. –Software development life cycle –overview of software development process models."

Similar presentations


Ads by Google