Analysis and Design Process

Mock Test and Test Driven Development Refer to slide: 03TDD(Java)2nd(English) – chapter3 Exercise: multiple teams. Important slides: 31, 35

ppt27 trang | Chia sẻ: tuanhd28 | Lượt xem: 1773 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Analysis and Design Process, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Analysis and Design Processnttthuy@hcmuaf.edu.vnContentProcess labProject ManagementSoftware Development ManagementAnalysis & Design ProcessSoftware Analysis & Design - SADToolsEnterprise ArchitectureAnalysis & Design ProcessDescribe Analysis & Design processRelated documentsProject ManagementSoftware Development ManagementSoftware Architecture Document (SAD)High Level Design DocumentDomain Model Documentation Class Model Documentation Process View Documentation Deployment View DocumentationData View DocumentationTechnical Review MinutesPeer Review Report & TrackingDesign process1.High level design2.Low level designOutput:Software Architecture DocumentGlobalDetailUse Case ViewLogical ViewProcess ViewImplementation ViewDeployment ViewData View (optional)Software architect(SA)DeveloperInputSoftware REQs Specification document3.Database design4 + 1 View Logical ViewProcess View*Example: Communication Diagram : Student : RegisterForCoursesForm : RegistrationController : CourseCatalogSystem5: display course offerings( )6: display blank schedule( ) : Course Catalog1: create schedule( )2: get course offerings( )3: get course offerings(forSemester)4: get course offerings( )Implementation View*Deployment View*Deployment View*4 + 1 View Model with UML2Architecture PatternSystem Architecture (Deployment model)Software Architecture (System Architecture/ Software System Architecture)*System Architecture*Software Architecture**Identifying Subsystems> ClassAX()W()X()W()>“Superman Class”InterfaceKSubsystemA>ClassA1X()ClassA2W()*Identifying Subsystems (continued)A sub-system typically groups together elements of the system that share some common propertiesAn OO sub-system encapsulates a coherent set of responsibilities in order to ensure that it has integrity and can be maintainedEach sub-system has a well-defined interface with the rest of the system but does not describe its internal structure.A sub-system can be designed and constructed independently of other sub-systems.*Subsystems are a “cross between” a package (can contain other model elements) and a class (has behavior)Realizes one or more interfaces that define its behaviorSubsystemSubsystems and InterfacesInterfaceRealization (Canonical form)Realization (Elided form)Subsystem Name >Interface Name>Interface NameSubsystem Name >*Subsystems and Interfaces (continued)Subsystems :Completely encapsulate behavior Represent an independent capability with clear interfaces (potential for reuse) Model multiple implementation variantsInterfaceKX()W()>SubsystemA>SubsystemB>ClassA1W()ClassA2X()ClassB1W()Y()ClassB2X()ClassB3Z()*Packages versus SubsystemsSubsystems Provide behaviorCompletely encapsulate their contentsAre easily replacedPackages Don’t provide behaviorDon’t completely encapsulate their contentsMay not be easily replacedEncapsulation is the key!Subsystem A>Package BClassB1ClassB2Client Class*All other analysis classes map directly to design classes.AnalysisDesignExample: Design Subsystems and InterfacesBillingSystem//submit bill()>Billing System>IBillingSystemsubmitBill(forTuition : Double, forStudent : Student)CourseCatalogSystem//get course offerings()>Course Catalog System >ICourseCatalogSystemgetCourseOfferings(forSemester : Semester, forStudent : Student) : CourseOfferingListinitialize()*Provided interfacedefinedICourseCatalogSystem>CloseRegistrationController+ // is registration open?()+ // close registration()>0..1+courseCatalogCourseCatalogSystem>+ initialize ()+ getCourseOfferings ()+ getCourseOfferings (forSemester: Semester) + initialize ()RegistrationController+ getCurrentSchedule()+ deleteCurrentSchedule()+ submitSchedule()+ saveSchedule()+ getCourseOfferings()+ setSession()+ > new()+ getStudent()>CourseOfferingList+ new()+ add()1Required interfacedefinedExample: Subsystem Context: CourseCatalogSystem*IBillingSystem+ submitBill(forStudent : Student, forTuition : double)>10..1+ BillerStudent>CloseRegistrationController+ // is registration open?()+ // close registration()>BillingSystem>+ submitBill(forStudent : Student, forTuition : double)Example: Subsystem Context: Billing SystemMock TestMock Test and Test Driven DevelopmentRefer to slide: 03TDD(Java)2nd(English) – chapter3 Exercise: multiple teams.Important slides: 31, 35Review - high level designREVIEWHLDBusiness analyst(BA)Software architect(SA)TesterDeveloperDeployerProject manager (PM)Review – low level designREVIEWLLDBusiness analyst(BA)Software architect(SA)TesterDeveloperDeployerProject manager (PM)Q &AThank you

Các file đính kèm theo tài liệu này:

  • ppt20091007_chapter03_analysis_and_design_process_3925.ppt
Tài liệu liên quan