Introduction to Software Engineering: Overview and Methodologies John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from Bruegge & DuToit, Object Oriented Software Engineering 3e, Ch 1, 14 16, and other sources. What is Software Engineering? Large software development projects, requiring teams of developers working together, and often spanning long time frames. Borrows paradigms and ideas from other large engineering projects, such as highway construction, airplane manufacturing, skyscrapers, nuclear power plants, etc. 2 1
What are the major activities in SE? See tables 15 2 to 15 6 for detailed lists of the activities included in each process. 3 The Classic Waterfall Model 4 2
The V model shows the relationships between planning and testing 5 An activity diagram shows the relationship between actions and products. ( 1 of 2 ) 6 3
An activity diagram shows the relationship between actions and products. ( 2 of 2 ) 7 Boehm s Spiral Model was one of the first iterative approaches 8 4
The Unified Process is also an iterative approach. 9 Workflow activity levels fluctuate in the Unified Process phases. 10 5
Agile development methods take a somewhat different approach. Embracing change, rather than fearing it. Development in small increments, without pre planning the entire project. Incremental functionality delivered as the project proceeds. Rapid ( high quality ) development methods. More suitable for small teams working on shorter term projects. 11 The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over Processes and tools Working software over Comprehensive documentation Customer collaboration over Contract negotiation Responding to change over Following a plan That is, while there is value in the items on the right, we value the items on the left more. [1] 1. Beck, Kent; et al. (2001). "Manifesto for Agile Software Development". Agile Alliance. 12 6
The Rugby method moves forward in a series of sprints ( scrums. ) 13 Methods Used in the Rugby Approach 14 7
The Planning Poker Estimation Method Team members are given cards with numbers on them, e.g. 1, 2, 3, 5, 8, 13, 20, 50, 100. After discussion of a task, each team member selects a card, and they are all shown at once. The highest and lowest estimators explain their hireasoning, and the process repeats until a consensus is reached. 15 Rugby monitors progress with burndown charts ( or burnup. ) 16 8
XP is best known for Pair Programming 17 Rotating Roles Assign each team member a role, such as organizer, lead programmer, scribe, etc. Pair off programmers and assign tasks. Every two weeks reassign roles and redistribute programmers to new pairs and new tasks. Result is cross training and shared responsibilities. 18 9
A Closer Look at Project Management 19 A Closer Look at Pre Development 20 10
A Closer Look at Development 21 A Closer Look at Post Development 22 11
A Closer Look at Integral Processes 23 Project Initiation in CS 440 Description Who? What? Where? Why? When? h? How Much? Scenarios Once upon A time... Scenario Diagram 24 12
Requirements Phase in CS 440 Requirements Use Cases Use Case Diagram Functional Requirements Entry Flow 1 2 3 4 Exit F1 + F1 F2 F3 Checklists Non Functional Requirements N1 F1 N2 N3 + Snow Cards 25 System Design Phase in CS 440 26 13
Object Design Phase in CS 440 Object Design Class Name [ + # ~ ] attributes : types [ + # ~ ] methods( arguments : types ) : type + Constraints ( OCL ) 27 Implementation Plus in CS 440 28 14
Testing and Inspection in CS 440 Testing and Inspection Conducted from day 1 to end. Test Plans Test Inputs Oracles Automated Procedures Inspection Checklists Test & Inspection Reports 29 References Bruegge & DuToit Inside front cover Chapters 1, 14 16 Especially Sections 14.4, 14.5, 15.2, 15.4, 16.4 JTB Diagrams 30 15