Download presentation
Presentation is loading. Please wait.
1
1 Software Engineering--Introduction
2
2 1.Syllabus, grading, schedule--class + lab--will all be on www.ece.uc.edu/~cpurdywww.ece.uc.edu/~cpurdy 2.Contact information: C. Purdy / P. Janga (TA) 3. Java--to be learned in lab--you will develop basic skills, “expert” status not required 4. teams--we will form these by next Monday--3-4 per team 5. project--most will be done in lab 6. passing 493/495: you must pass both classes; if you fail one, you will receive an F in both; otherwise you will receive a separate grade in each of these classes 7. grading: 493 | 495 8. cell phones--for each call you get in class, you lose 3 points on your final grade 9. Electronic communication (text messages, laptops, etc.): NOT ALLOWED in lecture as these distract from class discussions 10. Reading assignments: please read BEFORE class & be ready to discuss in class (there will generally be “low stakes writing” for these) 11.Group work / individual work: we will do a lot of each--follow rules for each assignment. 12.Lab sections: formally there are 2 lab sections. In practice we will treat these as one big section. Most weeks we will ALL meet in 890 Rhodes for about 1 hour of discussion, then each team will work together. I will be available to work with you most of the time and Mr. Janga will also be available. Course Administration
3
3 assignment (due WEEK 3 in lab): Team assignment In lab your team will specify, design, implement, and test a (java) program consisting of at least one component built by each team member. Use this mini-project to explore the planning and management concepts which you will apply to the quarter project. Based on your experiences with this mini-project, fill in DETAILED answers to the questions below. This will be CHAPTER 1, RESOURCES AND PLANNING, for your quarter project report. RESOURCES: List all personnel and skills of each (Java experience, software project experience, good writing skills, etc.) List the number of hours each team member has available to devote to the project over the quarter. List all hardware and software resources that will be used for development. PLANNING: Describe the team organization. List who will be assigned to oversee each of the following: documentation; testing; version control and backups; productivity; overall management (number of managers depends on team organization chosen). Describe how the team members will communicate and coordinate their work. Give the time and place of weekly team meetings (at least one meeting per week is required). Describe completely the process model you will follow and explain why this model is appropriate for the project and for your available resources. Describe completely how you will handle version control and backups. Give the formulas you will use for calculating productivity (you must measure individual and team time spent and you must measure how much you have produced—weekly and overall)—see update on next slide Describe your plan for testing. As we will discuss later, it is important that each component be tested by someone who is not the author. It is also important that you follow an incremental plan for integrating components into your system, testing the whole system each time a new component is integrated. As you develop components, you should also be building up a set of test cases which can be run each time a change is made to the system. Provide a RISK TABLE for your project (see lecture notes) Provide both a GANTT CHART and TRACKING DOCUMENT for your project (see lecture notes). You can build the Gantt chart using the project development schedule given on the web page for 495. Describe the CODING STANDARDS you will use (see lecture notes). Describe how you will produce up-to-date documentation (content and form—online?) in parallel with the project. First “Project”Assignment (Preview)
4
4 The lectures and assignments in this course will focus on developing knowledge and skills for: effective teamwork project management software development "lifelong learning" In this course we will be concentrating on the process of developing software, not on technical skills in specialized areas such as database management, wireless computing, etc. The skills we will learn can also be applied to hardware projects and to mixed hardware / software projects. Course Themes
5
5 People, Product, Process--> Project
6
6 Software Life Cycle
7
7 People (Stakeholders)—Roles, Goals, Functions RoleResponsibility CustomerHigh level requirements, project scope UserWhat tasks must system carry out? What is level of expertise? Business ManagerOrganize, track work Technical ManagerManage technical issues DeveloperDesign, implement, test Technical WriterDocumentaion, manuals Goals / Functions – conflicts?
8
8 Questions to Think About some points to ponder: "software crisis"--systems become more and more complex: --what can we automate? --how can we verify/ test such complex systems? "hardware/software" boundary --how can we do "co-design"? --where is the boundary? types of software systems --how do important application-specific systems differ? --what impact do differences have on development? --which systems will be most important in the coming years?
9
9 Important System Types Some Common System Types—what is the same/different? Databases Communication systems Entertainment systems Web-based applications Medical systems Manufacturing / transportation systems Simulation programs to support engineering and science Parallel/distributed applications Embedded systems Intelligent systems / robots Utility software for computer systems (compilers, e.g.) Utility software for general users (spreadsheets, e.g.)
10
10 References
11
11 “Mythical Man-Month”
12
12 Why is Managing Programming Hard?
13
13 System Architect
14
14 Separate Architecture, Implementation
15
15 Process Model
16
16 Productivity
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.