1 / 25

Software Engineering

Software Engineering. Requirements + Specifications. Software Engineering. The term software engineering refers to the study of software development on large scales. Few programs these days are written by lone, individual programmers.

nock
Download Presentation

Software Engineering

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. Software Engineering Requirements + Specifications

  2. Software Engineering • The term software engineering refers to the study of software development on large scales. • Few programs these days are written by lone, individual programmers. • Instead, programs are often written by large teams who must coordinate their efforts.

  3. The Waterfall Model Marketing Requirements Analysis Specifications Design Architecture Untested Software Implementation Testing Program Maintenance

  4. The Waterfall Model • Note: we’ve already looked fairly in-depth at the “Testing” stage • We won’t be revisiting this Note: waterfall is often an “ideal” or reference – in reality, stages often overlap, or proceed in “spiral”

  5. Requirements • Are there any techniques we can use to flesh out potential requirements for a software system? • One such technique in common use is known as use cases.

  6. Use Cases • The idea of use cases is to determine how potential users with differing roles would need to use a program to accomplish their tasks. • What sort of access would different types of users need within the system to perform their tasks? • These may often involve multiple scenarios.

  7. Use Cases • Focuses: • “Who” can do “what”? • Each potential “who” is referred to as an actor. • “What” needs to be done, rather than “how” it should be done.

  8. Source: Wikipedia

  9. The restaurant’s client orders food… The chef receives orders and then prepares them… and the waiter takes food matching a client’s order and serves it.

  10. Use Cases • Why use them? • They’re very useful for communicating with clients. • Relatively simple notation, visually clear. • Helps to flesh out requirements – the visual representation makes it easier to sense if something’s missing. • They also help to design test cases for later use.

  11. Mock-up UI Demo • From use cases, you can build a fake demo that shows screens and simulated interaction (can be little more than a slide show or hypertext) • They’re very useful for getting feedback on your proposed system • Get ideas for what users actually want • Find out cheaply if nobody cares

  12. Requirements • Why is it important to get good requirements initially? • 2003 study: 70% of all projects failed, or were incomplete due to going overbudget or overschedule. • A related study quoted by this one: 83.8%! • The common, primary cause: changing or unclear (poor) requirements

  13. Requirements • Mercer Consulting: • When the true costs are added up, as many as 80% of technology projects actually cost more than they return. It is not done intentionally but • the costs are always underestimated • the benefits are always overestimated (Dosani, 2001) • Takeaway – start small, with clear requirements for important need

  14. Requirements • Requirements could be • Overlooked: certain expectations won’t be met, and thus critical features will be missing • Incorrect: features won’t be implemented in an effective way for the end user • Poorly communicated

  15. Requirements • Requirements could be • Low-value: time and money will be spent developing features that aren’t important. • They’d have a low return-on-investment. (ROI)

  16. Analysis • Previously in the semester, we examined how analysis is performed on an individual object level. • Similar analysis may be performed upon available requirements in order to fully flesh them out into a structured, concrete specification. • We’ll also add in a few additional items for consideration at this time.

  17. Analysis • Inputs: what data will be input into the program by one or more “actors”? • What commands will be available? • What will be the format for each type of data?

  18. Analysis • Outputs: what data will our program generate that will be needed by one or more “actors”? • How will data be output? • Are there different ways it may potentially need to be output? • Might the user wish to output only a subset of the data?

  19. Analysis • Constraints: we’ve previously noted that sometimes objects should have limitations imposed on them “artificially,” in order to model what they represent in the real world more accurately. • Might there be analogous system-level constraints that should be enforced?

  20. Analysis • Constraints • Programs that work with databases often require unique identifiers for database entries. • Databases will often allow certain fields of an entry to be blank, while requiring other fields to have a proper value. • Multithreaded programs must take special care to ensure chronological consistency and correctness.

  21. Analysis • Constraints • Some online games need to make sure that lag doesn’t cause one player to get an overly unfair advantage on another player. • Also in terms of games, some games (from particular genres) will put limits on the in-game “resources.” • Ex: 200/200 “supply cap” in Starcraft 2.

  22. Analysis • Assumptions: Are we operating under any sort of assumptions? • Either on our own part or on those of the client?)

  23. Analysis • Modifications: Whenever an object within the program is modified, will any corresponding changes be expected elsewhere within the system? • Adding a new element into a data structure (typically) may not automatically add it into corresponding structures of the user interface.

  24. Analysis Relationships/Effects: How are system-level modifications related to system constraints?

  25. Next: Design

More Related