Software Engineering What is Software Engineering Is the

  • Slides: 14
Download presentation
Software Engineering

Software Engineering

What is Software Engineering? • Is the systematic approach to the development, operation, maintenance,

What is Software Engineering? • Is the systematic approach to the development, operation, maintenance, and retirement of software • Establishes sound engineering principles to assist in the development of reliable, high quality systems, right from the inception stage ©Copyright 2004, Cognizant Academy, All Rights Reserved

S/W Requirements • Property that must be exhibited in order to solve some problem

S/W Requirements • Property that must be exhibited in order to solve some problem of the real world • Properties that should be: – – – Specific Measurable Agreed Upon/Accepted Realistic Testable • Requirement Engineering Skills called for include good verbal & written communication skills, presentation skills, sensitivity & ability to get around social & political issues that can affect stakeholders’ requirements & their willingness or ability to articulate them, rational & unbiased approach, negotiating skills, etc ©Copyright 2004, Cognizant Academy, All Rights Reserved

Software Requirements Management • An activity that spans the whole S/w life-cycle • Is

Software Requirements Management • An activity that spans the whole S/w life-cycle • Is fundamentally about change management & the maintenance of the requirements in a state that accurately mirrors the S/w to be, or that has been, built • Includes change management, requirements attributes & requirements tracing ©Copyright 2004, Cognizant Academy, All Rights Reserved

Basic Concept of S/W Design • Abstraction Process of forgetting/ignoring some information so that

Basic Concept of S/W Design • Abstraction Process of forgetting/ignoring some information so that things that are different can be treated as if they are same • Coupling & Cohesion Coupling measures the strength of relationships that exist between modules, cohesion measures how the elements making up a module are related • Decomposing & Modularization The operation of breaking up a large system into a number of smaller independent ones ©Copyright 2004, Cognizant Academy, All Rights Reserved

S/W Design Quality Analysis & Evaluation • Quality Attributes – Covers quality attributes generally

S/W Design Quality Analysis & Evaluation • Quality Attributes – Covers quality attributes generally considered important for obtaining a design of good quality. E. g the NFRs • Quality Analysis & Evaluation Tools – S/w Design Reviews (Informal, Semi-Formal, Group-based) – Static Analysis (Formal or Semi-Formal Analysis to evaluate Design) – Simulation & Prototyping (Dynamic Techniques: Performance Simulation, Feasibility Prototype) • Measures – Function Oriented (Structured): Emphasis on Structured design approach – OO Design Measures: Used for designs based on OO decomposition. The overall structure is often represented as Class Diagrams, on which various measures can be defined ©Copyright 2004, Cognizant Academy, All Rights Reserved

S/W Construction: Breakdown • The 1 st & most important method of breaking the

S/W Construction: Breakdown • The 1 st & most important method of breaking the subject of S/w construction into smaller units is to recognize the 4 principles that most strongly affect the way in which S/w is constructed. These are: – Reduction of Complexity: Addresses the limited human ability to work with complex systems that have many parts or interactions – Anticipation of Diversity: Anticipate change because the S/w is bound to undergo changes – Structuring for Validation: Building s/w in a manner that errors & omissions can be identified &eliminated more easily – Use of External Standards: Construction language that is meaningful only within the S/w is no more good ©Copyright 2004, Cognizant Academy, All Rights Reserved

Software Test Levels Targets of Testing • They are classified based on the Targets

Software Test Levels Targets of Testing • They are classified based on the Targets of Testing as: – Unit Testing (Quality Artifact: Unit Test Cases & Log Template) – Integration Testing (Quality Artifact: Integration Test Cases & Log) – System Testing Relationship of Testing Activities with Analysis & Design is depicted diagrammatically The model shows the iterations & rework at each level for fixing & improving requirements, design & code before the testing steps on the right are reenacted ©Copyright 2004, Cognizant Academy, All Rights Reserved

Software Maintenance Process • Process model with IEEE Maintenance phases, showing maintenance activities •

Software Maintenance Process • Process model with IEEE Maintenance phases, showing maintenance activities • Supporting activities include configuration management (CM), verification & validation, quality assurance, reviews, audits & conducting user training ©Copyright 2004, Cognizant Academy, All Rights Reserved

Key Issues in Software Maintenance • Technical Issues – Limited Understanding – Testing –

Key Issues in Software Maintenance • Technical Issues – Limited Understanding – Testing – Impact Analysis – Maintainability • Management Issues – Alignment with Organizational Issues – Staffing – Process Issues – Organization Aspect of Maintenance ©Copyright 2004, Cognizant Academy, All Rights Reserved §Maintenance Cost & Maintenance Cost Estimation -Parametric Models, Experience §S/w Maintenance Measurements -Specific Measures

Techniques for S/w Maintenance • Program Comprehension: Programmers reading & comprehending programs • Reengineering:

Techniques for S/w Maintenance • Program Comprehension: Programmers reading & comprehending programs • Reengineering: Examination & alteration of the subject system to reconstitute it in a new form, & the subsequent implementation of the new form • Reverse Engineering: Process of analyzing a subject system to identify the system’s components & their inter-relationships & to create representations of the system in another form or at higher levels of abstraction. It is passive & does not change the system, to result in a new one • Impact Analysis: Identifies all systems & system products affected by a change request & develops an estimate of the resources needed to accomplish the change ©Copyright 2004, Cognizant Academy, All Rights Reserved

Software Configuration Control • This is concerned with managing changes during the S/w life-cycle

Software Configuration Control • This is concerned with managing changes during the S/w life-cycle • It covers the process for determining what changes to make, the authority for approving certain changes, support for the implementation of those changes & the concept of formal deviations & waivers from project requirements ©Copyright 2004, Cognizant Academy, All Rights Reserved

Process/ Project Management • Deals with generally accepted SE management activities – Initiation &

Process/ Project Management • Deals with generally accepted SE management activities – Initiation & scope definition: Determination & negotiation of requirements, Feasibility analysis, Process for review & revision of requirements – Planning: Process, Project planning, Determining deliverables, Effort, Schedule, Cost estimation, Resource allocation, Risk, Quality & Plan management – Enactment: Implementation of Plans, Measurement, Monitoring& Controlling of process, Reporting – Review & Evaluation: At critical points in the process/project overall progress towards achievement of the stated objectives & satisfaction of stakeholder requirements is evaluated – Closure: The process/project reaches closure when all of the plans & embodies processes have been enacted & completed ©Copyright 2004, Cognizant Academy, All Rights Reserved

Waterfall Model – Onsite and Offshore Co-ordination ©Copyright 2004, Cognizant Academy, All Rights Reserved

Waterfall Model – Onsite and Offshore Co-ordination ©Copyright 2004, Cognizant Academy, All Rights Reserved