Presentation is loading. Please wait.

Presentation is loading. Please wait.

MCS 270 Spring 2014 Object-Oriented Software Development.

Similar presentations


Presentation on theme: "MCS 270 Spring 2014 Object-Oriented Software Development."— Presentation transcript:

1 MCS 270 Spring 2014 Object-Oriented Software Development

2 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Today’s schedule Discussion of Development Components MCS 270 Object-Oriented Software Development

3 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Software Development Activities Requirements analysis Design Implementation and unit testing Integration and system testing Maintenance MCS 270 Object-Oriented Software Development

4 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Requirements Analysis Goals To define the problem to be solved, i.e., to establish the functions, services, and constraints of the software to be developed. Deliverables Requirements statement documenting the functional and nonfunctional requirements of the system. MCS 270 Object-Oriented Software Development

5 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Design Goals Establish an overall architecture of the software, by partitioning the software into components, identifying the relationships and dependencies among parts. Deliverables Use Case document and Design Model document, along with various diagrams. MCS 270 Object-Oriented Software Development

6 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Implementation and Unit Testing Goals To implement the software design and test each individual component to ensure that each unit functions properly with respect to its specification before the units are integrated. Deliverables at Milestones Source code and unit testing report/documentation MCS 270 Object-Oriented Software Development

7 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Integration and System Testing Goals To integrate the individual components and test the system as a whole to ensure that the entire software system functions properly with respect to its specification. Deliverables at Completion Source code and System testing documentation MCS 270 Object-Oriented Software Development

8 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Maintenance Goals To improve the system after it is already in use, e.g., correcting bugs, improving performance, enhancing functions or services, and adapting to new environments. Deliverables New version and documentation of changes Note: This will be ongoing – probably by different programmers Longest and most costly activity in the software life cycle! MCS 270 Object-Oriented Software Development

9 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu What Contributes to Maintainability? Flexibility Simplicity Readability (understandability) MCS 270 Object-Oriented Software Development

10 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Flexibility Easy to Enhance/Adapt The Architecture/Design should be structured so that new modules or functionality can be inserted Minimal impact Impact of changes should be confined to a small region. Change shouldn’t require re-writing many different classes Testing of new enhancement should require only testing the small affected region rather than the entire system. MCS 270 Object-Oriented Software Development

11 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Simplicity Programmer’s Law: It is Impossible to avoid making mistakes! So, practice KISS principle Simple systems are less error-prone Easier to show correctness Errors are more obvious and correcting errors is easier. Divide-and-conquer approach Split problem into manageable sub-problems MCS 270 Object-Oriented Software Development

12 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu What are pitfalls of project development? MCS 270 Object-Oriented Software Development Many Projects Fail due to: Ad hoc requirements management Ambiguous and imprecise communication Overwhelming complexity Insufficient testing Subjective assessment of project status Uncontrolled change propagation Late Discovery of Structural Flaws

13 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Software Development: Best Practices 1.Develop software Iteratively 2.Manage requirements (Domain, Application Models) 3.Use component-based architectures (GWT, GAE, PHP, HTML5) 4.Visually model software (UML) 5.Continuously verify software quality (Unit Testing) 6.Control changes to software (GIT) MCS 270 Object-Oriented Software Development

14 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Planning Analysis Logical Design Physical Design Implementation The “classic” waterfall lifecycle MCS 270 Object-Oriented Software Development

15 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Planning Analysis Logical Design Physical Design Implementation Risk Time Risk pushed forward in time MCS 270 Object-Oriented Software Development

16 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu MCS 270 Object-Oriented Software Development Iterative Approach Planning Requirements Analysis and Design Implementation Test Evaluation -continuous discovery and implementation --each iteration results in an executable Initial Planning

17 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Iterative Development Key characteristics Consists of a number of design/code/test iterations Each iteration produces a working program Build system incrementally  Monolithic approach of waterfall model MCS 270 Object-Oriented Software Development

18 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Advantages of the iterative approach Misconceptions are evident early Encourages user feedback Continuous testing allows objective project assessment Inconsistencies between analysis, design, and implementation detected early Workload spread evenly (especially testing) MCS 270 Object-Oriented Software Development

19 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Iteration Planning Timing Complete each iteration in 1-1.5 weeks Sub-dividing Each iteration has “micro-iterations” inside of it, where your team tries to complete some parts of system and communicates progress back to the customer, potentially refining the iteration’s goals. MCS 270 Object-Oriented Software Development

20 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu At each Iteration -- Brain-storming ideas Feasibility study (are ideas doable in time allotted) Model, design, and implement Test (Does it work? Be brutal in your tests!) Sustainable pace - No all-nighters, no superheroes MCS 270 Object-Oriented Software Development

21 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Module 1 234 Typical Build Iteration 1 MCS 270 Object-Oriented Software Development

22 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Module 1 234 Typical Build Iteration 2 MCS 270 Object-Oriented Software Development

23 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Unit-Oriented Build- Iteration 1 Module 1 MCS 270 Object-Oriented Software Development

24 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Module 1 234 Unit-Oriented Build- Iteration 2 MCS 270 Object-Oriented Software Development

25 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Module 1 234 Unit-Oriented Build- Iteration 3 MCS 270 Object-Oriented Software Development

26 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Module 1 234 Unit-Oriented Build- Iteration 4 MCS 270 Object-Oriented Software Development

27 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu User Interface and Documentation User Interface Design – a good reference is http://99designs.com/designer-blog/2014/01/15/7-unbreakable-laws- of-user-interface-design/ Code Documentation Header on each class – Class name, Function, Date Credit to any Consultants MCS 270 Object-Oriented Software Development

28 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu User Interface and Documentation User Manual Ideally your user interface would be so intuitively obvious, a manual would be unneeded. However, just in case: General Rules: 1)Explain the overall purpose of the software 2)Present the concepts, not just the features 3)Cover background on the task domain, as well as functions 4)Make it enjoyable to read MCS 270 Object-Oriented Software Development

29 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Deployment Google App – client should have Google account – deploy app using their account, rather than your personal account. MCS 270 Object-Oriented Software Development


Download ppt "MCS 270 Spring 2014 Object-Oriented Software Development."

Similar presentations


Ads by Google