Analysis / Design Traditional Development requirements gathering WHAT? HOW? requirements analysis coding Ali Doğru METU 66 Process models Usually Waterfall derivatives Data and Function based models Dataflow / Entity-Relation / Structure Diagrams (DFD ERD Structure Chart) RDBMs, supporting CASE tools Common Methodologies Big organizations have their own Known methodologies: Yourdon Jackson SSADM SDM, SADT, DSSD... Ali Doğru METU 67 Ali Doğru METU 68 Common Approach Analysis: DFD Analysis: DFD, ERD, Data Dictionary Design DFD, Tables, Normalization, PSL/PDL Data -> Structure -> Function Transform Analysis Procedural language + SQL External Entity Process Data store Data User Password info info Ali Doğru METU 69 Ali Doğru METU 70 Traditional Software Development
DFD: Context Diagram System DFD: Level info user Card info Money System Account info Central bank database card info verified process transaction updated info Report Updated info money process output result current cash Ali Doğru METU 7 Ali Doğru METU 7 Entity Relationship Diagrams An Example ERD school private Entity has N full inheritance room Property new Relation <plurality> classroom laboratory office <plurality> Ali Doğru METU 7 blackboard floor capacity Ali Doğru METU SquareFeet 74 A Data Dictionary Example Analysis to Design Name Description Format Date Status Process School Floor Name of the school Attribute of the room entitiy: material Text Text (hardwood, carpet) 9/5/0 9/6/0 cancelled Active Data dictionary interface Structural Capacity Attribute of the laboratory entity Integer 9/6/0 Active State diagram Has Relation: st entity owns the nd 9/6/0 active Control specification Data Ali Doğru METU 75 Ali Doğru METU 76 Traditional Software Development
Modular Complexity Complexity: C(p+p) > C(p) + C(p) Functional Dependency: Cohesion Coupling depth A System and its Modules System Output fan = a b c d e f g Input fan = h i j k Ali Doğru METU 77 width input flow Transform: Transform Flow access valid Transform flow banking Output flow type Input flow Valid Transaction Flow valid flow Transaction flow Account banking ç flow 4 Flow information op/. Flow money transfer transfer information First Step in Transform Transaction flow: first step Transform flow example Input transaction flow example Input Output Balance Report generation Money transfer Ali Doğru METU 8 Ali Doğru METU 8 Traditional Software Development
Input Control Check Check Password Transaction flow: second step Prepare Balance Control Prepare Transaction flow Money transfer Procedural Specification: PDL Do Read If (invalid ) go to beginning Ask for type If ( type == deposit) then {Deposit(); go to beginning} Ask for If (invalid ) go to beginning If ( type == ) then {Balance(); go to beginning} If (insufficient ) then go to beginning If ( type == money transfer) then {Transfer(); go to beginning} If ( type == money transfer) then {Transfer(); go to beginning} Else Withdraw() While (continuous) Ali Doğru METU 84 Test Plan Test cases Testing techniques Testing strategies Testing Unit Test Integration Test System Test V&V α & β Black box Testing Techniques White box Exhaustive testing: prohibitive complexity Basis path testing: manageable: Cyclomatic complexity = # decision points + N n -N e + # Loops in a planar flow-graph? Ali Doğru METU 85 Ali Doğru METU 86 A = While B <> A do {} If C > A {} D = C Else if D> C {} D = A End while {4} If D > {5} D = A B = A {6} Basis path testing 4 5 6 Cyc.Comp=9-6+ = 5 Top-down Bottom-up Sandwich Testing Strategies stub driver Ali Doğru METU 88 4 Traditional Software Development 4
Object Oriented Approaches Object Oriented Approaches - II Programming languages: raising abstraction Languages in 80s, methodologies later A modeling that is closer to human mind than to machines Very similar OO modeling languages Consistent development media from analysis to coding Meanwhile maturing of SE; incorporating non OO techniques Ali Doğru METU 89 Entities should be modeled with their s Supports reuse and modularity Complexity is attempted to be addressed by generalization and specialization mechanisms Details to come soon Ali Doğru METU 90 Newly Developing Concepts Component Technologies Design Patterns Architectural Frameworks No methodological support yet! Domain orientation Ali Doğru METU 9 5 Traditional Software Development 5