1 / 9

CS 111 – Nov. 22

CS 111 – Nov. 22. Chapter 7 Software engineering Systems analysis Commitment Please read Section 7.4 (only pp. 336-341), Sections 7.6-7.9 Homework #2 due Nov. 29. Software engineering. Large software systems cannot be written by 1 person Several people work together

demetriusp
Download Presentation

CS 111 – Nov. 22

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. CS 111 – Nov. 22 Chapter 7 • Software engineering • Systems analysis • Commitment • Please read Section 7.4 (only pp. 336-341), Sections 7.6-7.9 • Homework #2 due Nov. 29

  2. Software engineering • Large software systems cannot be written by 1 person • Several people work together • Each is responsible for portion of program • These portions interact… so must make sure your piece will fit correctly in jigsaw puzzle • Example: developing user interface for registration system: Your output (list of desired course sections) must be in format expected by next phase of program • Deadlines

  3. Tips for success • General guidelines • Don’t reinvent the wheel • Make your solution efficient, elegant, easy to understand • Build solution incrementally, test & document often • It’s easier to fix a bug the sooner it’s found! • Work in pairs, check each other’s work • Integrated development environment (IDE) • Software that simplifies job of writing code • As you type, “code” becomes color coded • Automates compiling and testing • Built-in debugger: can trace through instructions one by one, inspecting values of variables: rather than modifying code by inserting print statements!

  4. Software life cycle • Very similar to problem solving procedure • Problem specification written • Design of solution • Implementation • Testing • Maintenance

  5. Systems analysis • Distinction… • Software engineering is mainly concerned with implementation of the project • Systems analysis is mainly concerned with specification and design • Definition of systems analysis (Whitten & Bentley): • “A systems analyst facilitates the study of the problems and needs of a business to determine how the business system and IT can best solve the problems and accomplish improvements for the business.” • The finished product is eventually a new or improved computer application, implemented by software engineers.

  6. Principles • Get the owners and users involved • The program you’re designing doesn’t belong to you. It’s to help other people. Find out what they desire. • Follow problem solving procedure • Define what a suitable solution must accomplish / do. • Evaluate possible algorithms, and choose the best • After testing, evaluate new system’s impact, get feedback from stakeholders. • Establish a schedule for the software life cycle • How much time do you have • How many people can you have on your team & for how long? • What are their strengths and weaknesses?

  7. Principles (2) • Establish coding and documentation standards • Your software engineers are writing code for you. Almost like they are students in your class. • Essential to have code written in a consistent style • Encourage good documentation communication, including list of known problems. Let your people know they won’t be penalized for admitting their work is incomplete. You don’t want these to be a secret, or else risk future debugging. • Give people a list of deadlines of deliverables. • Have your team members meet with you to discuss their accomplishments. • Is the project work cost-effective? • May need to scale down, trim some functionality or put off to later version.

  8. Principles (3) • Beware the “mythical man-month” • Doubling your staff will not make project take half the time. IBM found this out the hard way in its System/360 project. • Diminishing returns • Don’t be afraid to scale down or cancel project • Project should have milestones / checkpoints to evaluate path toward success • Decide how to get back on track, or reduce scope of project. • Can final deadline be extended? • If doomed, abort project and cut losses. • But, will your superiors understand?

  9. Principles (4) • Divide and conquer • A large project can be overwhelming at first. Break into small, manageable parts. • Reminds me of studying for a final exam, or writing large essay. • Top-down design and bottom-up implementation. • Design for future growth and change • Your project may be in service for 10+ years • People who adopt and like your work may want to continue using it forever. • You will have to live with decisions you make today. (For example, choice of programming language)

More Related