You are on page 1of 19

Software Engineering Introduction and

Overview

Essence and Accident
• Essence
– difficulties inherent in
the nature of software

• Accidents
– difficulties encountered
but not inherent

RA402 jcmt

• Inherent
Difficulties



Complexity
Conformity
Changeability
Invisibility

CSE1320 Intermediate 

Software Engineering Introduction and Overview Software Engineering Processes attempt to maximize QUALITY in the form of: • Reliability • Testability • Portability • Understandability • Efficiency • Modifiability • Human Engineering RA402 jcmt CSE1320 Intermediate  .

Software Engineering Introduction and Overview Software Engineering Processes Why? Issues concerning software quality • Relative costs of fixing faults • Price performance factors • Product size increase leads to larger teams RA402 jcmt CSE1320 Intermediate  .

Software Engineering Introduction and Overview What are the phases in the lifecycle of a software product? • • • • Requirements Specifications Design Implementation RA402 jcmt • Integration • Maintenance • Retirement CSE1320 Intermediate  .

not what I said I needed” • What does the problem require in terms of the solution? • Written document • Customer driven RA402 jcmt • Requirements testing – Rapid prototype – Mock-up – Partial system CSE1320 Intermediate  .Software Engineering Introduction and Overview Requirements Phase “What I need.

Software Engineering Introduction and Overview Specifications Phase What the developer wants to know: • What does the product do? • What are the constraints on the product? • Acceptance criteria RA402 jcmt • Frequent problems with a spec: – ambiguous – incomplete – contradictory • Specifications testing – – SQA reviews CSE1320 Intermediate  .

Software Engineering Introduction and Overview Design Phase How does the product do what it is supposed to do? • Analysis of the problem – Structured analysis : decomposing problem by how data is manipulated (acted upon) – Object-oriented analysis: decomposing problem by how data is represented RA402 jcmt • Developer must make design decisions about: – – – – – algorithms data representations I/O interfaces data flow modules – traceability • Design testing CSE1320 Intermediate  .

Software Engineering Introduction and Overview Implementation Phase Initial CS courses have to focus on this element first • Code • Documentation • Tests RA402 jcmt • Implementation testing – desk checking – test cases – reviews CSE1320 Intermediate  .

Software Engineering Introduction and Overview Integration Phase Putting it all together • Composition order • Integration testing – interfaces RA402 jcmt • Testing – does it meet the specs? – product testing by SQA – acceptance testing by customer CSE1320 Intermediate  .

Software Engineering Introduction and Overview Maintenance Phase In the user’s hands • Why? – – – operation documentation turnover • Kinds of maintenance – – – – Corrective Adaptive Perfective Preventive RA402 jcmt • Maintenance testing – changes – regression testing • Retirement – cost-effective? CSE1320 Intermediate  .

Software Engineering Introduction and Overview Specification principles • Separate functionality from implementation – A process-oriented systems spec language is required – A spec must encompass the system of which the SW is a component – A spec must encompass the environment in which the system operates – A system spec must be a cognitive model – A spec must be operational – The spec must be tolerant of incompleteness and augmentable – A spec must be localized and loosely coupled RA402 jcmt CSE1320 Intermediate  .

Software Engineering Introduction and Overview Analysis principles and issues • What differentiates one analysis technique from another? – – – – hueristics and notions point of view notation modeling approach • What things are common about analysis methods? – – – – hierarchical representation external and internal interfaces design and implementation foundation no focus on constraints or validation RA402 jcmt CSE1320 Intermediate  .

Software Engineering Introduction and Overview Analysis principles and issues • Analysis is information-driven – – First provide a mechanism for representing info then derive function and behavior Common characteristics 1) 2) 3) 4) 5) 6) mechanism for info domain analysis approach for functional and/or behavior representation definition of interfaces mechanisms for problem partitioning support of abstraction representation of essential and implementation views RA402 jcmt CSE1320 Intermediate  .

RA402 jcmt CSE1320 Intermediate  .Software Engineering Introduction and Overview Testing Testing cannot show the absence of defects. it can only show that software defects are present. 1. 3. Testing is a process of executing a program with the intent of finding an error. A good test case is one that has a high probability of finding an as yet undiscovered error. A successful test is one that uncovers an as yet undiscovered error. 2.

Software Engineering Introduction and Overview Testing Methods • Black-box testing – Knowing the specified function that a product has been designed to perform. 2. tests can be conducted to ensure that "all the gears mesh". independent paths at least once logical decisions both true and false loops internal data structures RA402 jcmt CSE1320 Intermediate  . 3. • White-box or glass-box testing – Knowing the internal workings of a product. tests can be conducted that demonstrate each function is fully operational. 1. 4.

Software Engineering Introduction and Overview Development Testing • Debugging approaches – – – brute force backtracking cause elimination • Before you fix 1. Is the cause of this bug also reproduced elsewhere? 2. What would have prevented this bug? RA402 jcmt CSE1320 Intermediate  . What new bug might I be putting in? 3.

Software Engineering Introduction and Overview Software Configuration Management Change is inevitable • Activities of SCM 1. ensure that change is properly implemented 4. ID change 2. report change to others • SCM output – programs – documentation – data structures SCM is not the same as maintenance RA402 jcmt CSE1320 Intermediate  . control change 3.

performance. interfaces. design constraints and information structure that can be allocated to each of the generic system elements available.Software Engineering Introduction and Overview Systems Engineering Issues Takes customer-defined goals and constraints and derives a representation of function. RA402 jcmt CSE1320 Intermediate  .

McGraw-Hill. Reliability.. Inc.”.and Management. Conte. Design. (Reprint)1982 – “No Silver Bullet: Essence and Accidents of Software Engineering. S. 20. Brooks.Pressman. Inc. Roger S. Stephen R.Aksen Associates Incorporated Publishers.E. Dunsmore. Inc. No.. Frederick P. 1992 – Software Engineering. 4 (April 1987) pp. Addison-Wesley Publishing Company. 1986 RA402 jcmt CSE1320 Intermediate  .McGraw-Hill... A Practitioner’s Approach.Schach. 1990 – Software Engineering. 1983 – Software Engineering Metrics and Models.Shooman.. Martin L. 10-19 – Software Engineering. V.Y.The Benjamin/Cummings Publishing Company.D.Software Engineering Introduction and Overview Software Engineering Notes for CSE1320 Intermediate Programming • Sources – The Mythical Man-Month.. Vol. Computer. H. Shen.