1 software development and net
play

1: Software Development and .NET An approach to building software - PowerPoint PPT Presentation

1: Software Development and .NET An approach to building software Overview Programming in software development Life-Cycles for software development Object-orientation and modelling Requirements analysis and specification


  1. 1: Software Development and .NET An approach to building software

  2. Overview � Programming in software development � Life-Cycles for software development � Object-orientation and modelling � Requirements analysis and specification � Algorithms � Task decomposition � The .NET framework

  3. Programming � Programming is only one activity in the process of developing software � Analogous to the Construction phase in building (i.e. missing out architecture, surveying, logistics etc.) � Before programming can commence, we need to determine what to do (requirements analysis) and how we will do it (design) � To build good software, it is necessary to perform a lot of organizational tasks – breaking up the overall job, deciding on what will be implemented, combining components into a system, testing what we have built etc.

  4. Software Life-Cycle � Most software developers accept that software is created over a sequence of tasks that are often called the ‘life-cycle’ � Depending on the required system, the tools used, the developers doing it and other environmental factors, any one of many different styles of life-cycle can be used

  5. Common Life Cycle Models 1 � Well established � The Waterfall Model � Predictable � Easy to cost But… � Inflexible � Software appears late

  6. Common Life Cycle Models 2 � Based on Waterfall � Good for complex � Staged Delivery systems with many independent components Software � Quick to get working Concept � Initial design is simple Requirements Analysis But… Architectural � Can cause ‘feature Design creep’ Stage 1: Detailed design, code, debug, test and delivery Stage 2: Detailed design, code, debug, test and delivery Stage n: Detailed design, code, debug, test and delivery

  7. Common Life Cycle Models 3. � Based on a cycle of rapid design, build, � Evolutionary prototyping evaluate, modify design etc. � Good for systems Initial Design and Refine Complete and Concept implement prototype release where requirements are partial until prototype ambiguous (e.g. new type prototype acceptable of software) � Customer involved throughout But… � Difficult to predict � Duration � Cost

  8. Common Life Cycle Models 4 � Extreme Programming (XP) � A radical and very recent development model � Eschews traditional phase-oriented approach, reasoning that requirements are impossible to freeze early in a project’s life � Promotes a set of practices based on programmer’s experience: � Small teams � Form of Staged/Evolutionary Delivery, but many more stages (mini-milestones) � Team MUST include a client representative – developers require constant access to clarify requirements and demonstrate stages of delivery � Team agrees of code standards, which are held rigidly � Development progresses as: � Define a requirement (a story ) � Devise a test of the requirement � Write software to pass the test (simple as possible)

  9. Life Cycles in Practice � There are in fact many more forms of life-cycle than the 4 described here � See Rapid Development, by Steve McConnell for an overview of the main ones � Most SD companies have their own variation on a common life cycle � Corporate culture is a major influence on how a life-cycle model is applied to a real project � It is common to ‘mix-and-match‘ aspects of the standard life-cycles described in text and research papers � e.g. Staged Delivery with an Evolutionary approach in problem stages � There is no ‘one-size-fits-all’ approach to building software

  10. Life-cycle – Influencing factors � Size of project � the number of people involved in the project � the size of the company employing the developers � the level of formality adopted by the company � the type of software being developed � the expertise and experience of the developers, � the knowledge that the customer or end-user has about software and software development � The customers’ and developers’ understanding of the nature of the proposed software

  11. Life-Cycle for building OO programs in Visual Basic – requirements: � support for an object-oriented development model � support for the ‘Visual’ development model espoused by Visual Basic (and several other development systems) � scalability – that is, a facility to enable the use of the life cycle model for projects in a range of sizes � ease of use – we have no wish to wrap up an already complex task in layers of bureaucracy � best use of the high adaptability and rapid-development features inherent in object-oriented programming and visual development

  12. Object Orientation � A Life-Cycle is a process model that does not take the detailed nature of the project into account � A life-cycle model is not specifically ‘object- oriented’ � Individual phases will be affected, since the output of each phase is some form of software analysis/design/implementation product

  13. Modelling and Designing Software � Many established software design methods � Typically, a set of standards for diagrams, charts, tables etc. that can be used to describe software � UML is the current industry standard � Well established � Flexible � Provides sufficient detail for many types of software project

  14. UML � Unified Modelling Language – the integration of several design techniques useful in software development � Diagram based, since engineering communications work better using ‘visual’ models � Software tools (e.g. Visio, Rational Rose) can be used to create the framework of a program from a UML model � CASE (Computer-Based Software Engineering) � Faster development � Fewer human errors � Reduction of ‘drudgery’ in programming

  15. UML and Software Products � A series of Diagram standards for describing various stages in the development of software � UML’s 4+1 View model � Use-case view – for defining requirements � Design view – for defining the logical structure of software � Implementation view – describes physical components of system � Process view – depicts the ways different elements interact � Deployment view – describes how the various physical components are organised (e.g. how parts are allocated across a network).

  16. Requirements Analysis & Specification � Need to find out what a computer system will be required to do � Information comes from: � Initial proposal statement � Interviews with customers/end users � Developers’ knowledge and experience � Analysis and observation of manual system (e.g. for office software) � Determining inputs and desired outputs � Result of all this analysis is a specification document, containing statements that say what the system is expected to do in general terms � Typically a Use-Case diagram

  17. Use-Cases and Use-Case Diagrams Travel Agency System � Use-Case view Add Customer Deta ils � Depict a system from an end-user’s perspective Book Package Holiday � Creates a model of the ‘functions’ (use-cases) Retrieve a system will perform Booking Data � Provides a starting point from which to Travel Retrieve determine the objects Customer Data Agent that will make up a system Exchange Currency � Use-cases are ‘scenarios’ that require Generate detailed descriptions Exchange Invoice Clerk � A ‘Use-Case Diagram’ is a shorthand view of these

  18. Objects and Requirements � From a full description of system requirements, we need to determine the components a system will be made up of � These are ‘Objects’ in OOP terminology � The manufactured world is full of objects, many of which are components of bigger objects � We need to know what they are, what they must be capable of, and how they will need to interact � E.g. a pen has a body, an ink reservoir, a nib and ink, each with properties (ink is blue) and operations (ink runs out, nib transfers ink to paper) � Software objects are made up of data (properties) and operations (methods). Operations execute in response to external stimuli (messages) � Several objects may collaborate to meet any given system requirement

  19. Objects and Classes � A Class is a design (or template) for a type of object � Efficient – design once, deploy many times � An object is an Instance of a class � Classes are designed to: � Represent ‘parts’ of a system, e.g. � A Printing sub-system � An Invoice � A Customer Record � Define objects that can interact in functional ways � A Customer may be associated with a number of invoice � The Printing sub-system can print an Invoice � (Much) more on this later

  20. Algorithms � All software is built on the basis of a computer following simple instructions � Could be to extract data from a disk file, perform some arithmetic, display a result � Objects are convenient ways of organising sets of instructions � Easier to conceptualise – e.g. a Customer can print an Invoice (using the Printer sub-system) � The actual instructions are defined as Algorithms � An algorithm is a set of instructions for solving a problem or task. When the instructions are followed, it must eventually stop with an answer

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend