1 / 35

Understanding Software Development and Systems Today

This lecture provides an overview of software development, including the systems development lifecycle and the importance of software in automated processes. It explains the concept of systems and their characteristics, along with the history of software development from mainframes to modern client/server systems. The need for software development in rapidly changing environments is discussed, along with different development approaches such as structured and object-oriented methodologies. The lecture also delves into the systems development lifecycle (SDLC) phases and aids for software development like methodologies, techniques, and models.

kellyd
Download Presentation

Understanding Software Development and Systems Today

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SYS366 Week 1 - Lecture 1 Introduction to Systems

  2. Today • What is Software Development • Overview of Software Development • What is a system? • Systems Development Lifecycle (SDLC) • The Systems Stream • Sys366 overview and requirements

  3. What is Software Development? • Software Development implies developing some software – but it does not involve simply coding programs • Software is developed to turn manual processes into automated processes or to improve/enhance existing automated processes.

  4. What does this have to do with Systems? • Software Development entails understanding the problem to be solved, understanding how a business operates and understanding that the solution to be developed will be of value to the business • The Systems stream of courses provide the knowledge of the steps that need to be followed to successfully create a software solution from the inception of the idea to a working, fully operational system. This collection of steps is called the Systems Development Life Cycle.

  5. What is a system? • A combination of hardware and developed software that create the software solution that meets the needs of a business. • A collection of inter-related components that collect, process, store and provide as output the information needed to complete business tasks. • a shared understanding of how things work.

  6. What is a system? • Characteristics of a system* • It exists in an environment • It is separated from its environment by some kind of boundary • It has inputs and outputs which come from, or are sent to the environment • It has interfaces (allows communication between two systems) • It can have sub-systems (which are also systems) • It has a control mechanism *Object-Oriented Systems Analysis & Design using UML, 1999 pages 5-6

  7. What is a system? System Boundary Inputs Outputs What the system does Control Feedback Feed-forward How the system is controlled *Object-Oriented Systems Analysis & Design using UML, 1999 pages 5-6

  8. History of Software Development • 1970s/1980s: Mainframe • Centralized processing • The Mainframe • Punch card technology • Applications • Utility bills • Voting Machines • Modern Application • Chip development

  9. History of Software Development • 1980s/1990s: Mid-Range • Centralized/Distributed processing • 1990s: Client/Server • Data Warehousing • Distributed processing

  10. Need for Software Development: • Environments are rapidly changing • New technologies are frequently introduced • Companies merge and need to combine their systems • Government legislation

  11. Software Development Typical Solutions • Developed in-house • Turnkey • Off-the shelf • Contracted out

  12. Software Development Approaches • Structured • Worked well for centralized processing applications • Object Oriented • Works for GUI and web solutions

  13. Software Development Approaches • Structured • Based on the functions that a system needs to perform • Development is rigid: does not allow for changes easily without significant impact to a project deadline • Components do not tend to be reusable: solution developed is for a specific set of functions (which usually aren’t shared) • Uses Data Flow Diagrams (the flow of data through a system) and Entity Relationship Diagrams (the data the system is going to use)

  14. Software Development Methodologies • Object Oriented • Based on the interaction that happens between ‘objects’ • Does still consider the functions the system needs to perform however • Allows for reusability or sharing of code (a dialogue box construct is the same across applications) • Reduces the development time for an application • Focuses on object technology such as multimedia systems

  15. Object-oriented Development • OO is fundamentally different from traditional software development • Object-oriented approach • Real world objects are modeled into corresponding programming objects. • Objects have state, behaviour and identity.

  16. Systems Development Life Cycle (SDLC) • Software Development Projects are developed according to a definite methodology called the SDLC • organizes the activities of a project • Interactive and Incremental • followed by anyone involved in software development

  17. Systems Development Life Cycle (SDLC) • Project Planning Phase • Analysis Phase: understanding business needs • Design Phase: conceptualizing computer-system solutions • Implementation Phase: coding, testing and installation • Support Phase

  18. SDLC Aids for Software Development • Methodologies • Comprehensive guidelines to follow for completing every SDLC activity • Collection of techniques • Examples: Structured, OO

  19. SDLC Aids for Software Development • Techniques • Collection of guidelines that help the Developer complete a system development activity or task • Step-by-step instructions • General advice

  20. SDLC Aids for Software Development • Models • Representation of an important aspect of the real world • Diagrams and charts • Project planning aids • Rational Rose

  21. Where will I learn these methodologies, techniques, and models? • The Systems Stream

  22. Object-oriented Systems Development Life Cycle • Analysis: • Systems requirements are determined, defined and documented • Looks at functions (at a high level) and the data that will be used • Defines ‘what the system is to do’ • Deliverables: • Activity Tables (Sys366) • Use Case Diagrams (Sys 366) • Scenarios (Sys466) • Initial User Interfaces (Sys366) • Class Diagrams (with attributes only) (Sys466)

  23. Object-oriented System Development Life Cycle • Design: • Architecture (what platform will the solution be developed on) • Integrates the user interfaces with the data more clearly • Defines ‘how the system will do it’ • Deliverables: • Sequence diagrams (Sys466) • Deployment diagrams • Class diagrams (with operations) (Sys466) • More detailed user interfaces (Sys466) • Output report designs (Sys466)

  24. Object-oriented Systems Development Life Cycle • Code and Test: (PRJ666) • Code and install system • Define and create databases • Defines ‘the system’ • Deliverables: • Program code and documentation • Tested, working system

  25. Object-oriented Systems Development Life Cycle • Implementation: (PRJ666)) • The working system is delivered • Deliverables: • Hardware • Databases • Data Converted • Software installed • Support processes implemented • This phase actually happens in varying levels of detail at the end of each cycle

  26. Why the move to Object-oriented Methodology? • Software Development is too expensive • Poor Quality • Late Delivery • Poor Productivity • Too much person-power needed • Fragile systems • Legacy Systems • User Interfaces not state of the art

  27. Why the move to Object-oriented Methodology? • Software Developers are being asked to • Develop more sophisticated systems • Tackle more complex systems • Produce more reliable and malleable systems • Shorten the delivery cycle • Reduce costs

  28. Software Development • Some more common causes for Failure: • Deadlines that cannot be met • Budgets that have been exceeded • Solutions that don’t work • Systems too complex to maintain • Customer’s requirements not fully understood or captured correctly • Customers continually change their requirements • Customers are not committed to the project

  29. How does the Object-oriented SDLC help to overcome these problems in Software Development? • The system under development is refined and transformed through analysis, design, code and test phases – details are added in successive iterations(changes and improvements are introduced as needed) and incremental releases of software modules are delivered. System design – developing information systems using UML by Leszek A. Maciaszek (page 5, 2001)

  30. Iterative Nature of the Systems Development Life Cycle

  31. SDLC Variations • Developers encounter many variations of SDLC in practice. Based on: • Phases • Iteration • Emphasis on people • Speed of development • BUT you have to understand the basic methodology before you can vary it

  32. What is expected of me in SYS366? • Do we need to know all the abbreviations? • Not all, but many apply to the course content directly, e.g. OOA, OOD, UML.You need to know them all if you want a job in this field. • Does this course need a lot of memorization or does it need a lot of understanding (Logic)? • Mostly understanding. Logic, yes, both inductive and deductive. Curiosity and Creativity are also very important. The Systems courses engage the whole brain and person more than almost any other course in the curriculum. • What is the overall idea or main point does a student need to focus on? • What does the customer really need to run the business?Document those needs so both the customer and the business/computer system professionals clearly understand what the system will do to satisfy those needs.

  33. What is expected of me in SYS366? • Does this course need a lot of memorization or does it need a lot of understanding (Logic)? • Mostly understanding. Logic, yes, both inductive and deductive. Curiosity and Creativity are also very important. The Systems courses engage the whole brain and person more than almost any other course in the curriculum. • What is the overall idea or main point does a student need to focus on? • What does the customer really need to run the business?Document those needs so both the customer and the business/computer system professionals clearly understand what the system will do to satisfy those needs.

  34. What is expected of me in SYS366? • What is the overall idea or main point a student needs to focus on? • What does the customer really need to run the business?Document those needs so both the customer and the business/computer system professionals clearly understand what the system will do to satisfy those needs.

  35. What is expected of me in SYS366? • see the course home page cs/~sys366for details • What do students really need to know in this course? • Everything I talk about in class is important to the course and/or to being a computing systems professional. Generally, I do not distinguish between the two. Neither should you. • Do they need to know all the abbreviations? • Not all, but many apply to the course content directly, e.g. OOA, OOD, UML.You need to know them all if you want a job in this field. • You taught about the operations of a company, but I do not quite understand what the concept behind it is. • Company operations: doing the work of the company, i.e. delivering the products and/or services of the company to the customers. e.g. selling cars, shipping parts orders, fixing cars, bookkeeping and administration. • In this course, does it need a lot of memorization or does it need a lot of undestanding (Logic). • Mostly understanding. Logic, yes, both inductive and deductive. Curiosity and Creativity are also very important. The Systems courses engage the whole brain and person more than almost any other course in the curriculum. • What is the overall idea or main point does a student need to focus on? • What does the customer really need to run the business?Document those needs so both the customer and the business/computer system professionals clearly understand what the system will do to satisfy those needs.

More Related