1 / 10

Background material

Background material. Software Architecture (Shaw & Garlan) Object modeling & design (Rumbaugh,Blaha ..) Design Patterns (Gamma, Helm, et al) Software Engineering concepts (Fairley) Software Engineering (Pressman) Software Architecture in Practice (Bass, Clements, Kazman).

butch
Download Presentation

Background material

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. Background material • Software Architecture (Shaw & Garlan) • Object modeling & design (Rumbaugh,Blaha ..) • Design Patterns (Gamma, Helm, et al) • Software Engineering concepts (Fairley) • Software Engineering (Pressman) • Software Architecture in Practice (Bass, Clements, Kazman) (c) Ian Davis

  2. Further background material • The Mythical Man Month (Brooks) • ACM Sigsoft Software Engineering Notices • Code complete (McConnell) • Death march (Yourdon) (c) Ian Davis

  3. Goals of software development • Need to understand requirements. • Want software with maximum functionality. • Code must be reliable. • Cost to develop and maintain important. • Want results as fast as possible. • Must minimize development risks. (c) Ian Davis

  4. Problem • You cannot achieve all six goals simultaneously. • Which of these goals are you willing to compromise on. • How do you identify which (if any) of these six goals is realistic or realizable. (c) Ian Davis

  5. Software engineering to rescue • Identify desired functionality • Develop architectural design • Plan/cost activities • Monitor progress • Document decision points • Identify problems ASAP. (c) Ian Davis

  6. Is software development an art? • YES • Getting it right the first time demands vision. • There is beauty in a good design. • It is easy to appreciate a good design and dislike a bad one, at a raw gut level. • NO • Little argument about what is good or bad (c) Ian Davis

  7. Is software development engineering? • YES • We are building things. • Need a methodology to succeed. • Need engineering management skills. • Need to appreciate the importance of quality and reliability. • Need professional standards, discipline, and bodies. • Should be held accountable for our actions. (c) Ian Davis

  8. Is software development engineering? • NO • Not concerned with designing within tolerances • Code is either right or wrong (ie. Maths) • Limited/questionable concern with reuse of code • Not building ‘n’ of the same. Each project is new and unique. • Cookbook for algorithms, but not the project. (c) Ian Davis

  9. Acid tests • Which of the development goals are more achievable using engineering principals? • Can software development be a set of well defined manageable discrete logical steps? • When is a picture/design/essay worth 1000 lines of code? • When does the theory encourage needless bureaucratic displacement activities? (c) Ian Davis

  10. The basic issues • Get it right the first time, that’s the main thing. • Getting it right at the end doesn’t fly. • So how do you avoid getting it wrong? • Plan to throw your first attempt away - you will anyway. • If you plan to throw your first attempt away you will throw at least two attempts away. (c) Ian Davis

More Related