Software Engineering--Introduction - PowerPoint PPT Presentation

About This Presentation
Title:

Software Engineering--Introduction

Description:

Software Engineering--Introduction Software Engineering--Introduction – PowerPoint PPT presentation

Number of Views:129
Avg rating:3.0/5.0
Slides: 17
Provided by: Preferr1347
Learn more at: https://eecs.ceas.uc.edu
Category:

less

Transcript and Presenter's Notes

Title: Software Engineering--Introduction


1
Software Engineering--Introduction
Software Engineering--Introduction
2
Course Administration
  • Syllabus, grading, schedule--class lab--will
    all be on www.ece.uc.edu/cpurdy
  • 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)
  • Group work / individual work we will do a lot
    of each--follow rules for each assignment.
  • 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.

3
First ProjectAssignment (Preview)
  • 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 producedweekly 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 formonline?) in
    parallel with the project.

4
Course Themes
  • 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.

5
People, Product, Process--gt Project
6
Software Life Cycle
7
People (Stakeholders)Roles, Goals, Functions
Role Responsibility Customer High level
requirements, project scope User What tasks
must system carry out? What is level of
expertise? Business Manager Organize, track
work Technical Manager Manage technical
issues Developer Design, implement,
test Technical Writer Documentaion, manuals
Goals / Functions conflicts?
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
Important System Types
  • Some Common System Typeswhat 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
References
11
Mythical Man-Month
12
Why is Managing Programming Hard?
13
System Architect
14
Separate Architecture, Implementation
15
Process Model
16
Productivity
Write a Comment
User Comments (0)
About PowerShow.com