Welcome to dylanserver.xyz

Introduction to Software Engineering


Resources
  • Require people, time software, hardware
  • Hours per person per week
  • Each person’s role in the project
  • How to assign resources based on deliverables
Management
  • Keep n track and amend if fall behind
  • Gantt chart to set a timed plan
  • Check back with the chart consistently
Risks
  • What they are
  • How serious they are
  • How likely they are to happen
  • Plan to avoid them and recover after if happens

Software Models

Current Software is rarley written from scratch. Software can be written to extend or modify something that is already written and in use. Normaly, programs are made from off the shelf style components to do tasks within the progam. Most of the task is just configuring it to work in your spesific use case.

Software Design

The decodeion of the structure of the software to be implemented, data models, interfaces and algorythms. Platform information, software requirements, and Data decodeions get turned in to System architecure, database design, interface specification, and component decodeions

Examples of Process Models

  1. The waterfall model
  2. Incremental Development
  3. Reuse-Oriented sotware engenering
Waterfall:
Good:
  • Process is easy to see and track at each stage
  • Timescales are predictable
Bad:
  • Process is inflexible
  • Can only be used when requirements are likley to stay unchanged throughout the process
Incremental Development:
Good:
  • Its easier to add/remove requirements to the software after development has started
  • Easier to get feedback from customers
Bad:
  • The process is hard to visualise
  • Can be confusing to follow the plan
Reuse-oriented software Engineering:
This is a little different from the other two methods, as it relies components to already be written previously or by other people.
Good:
  • Reduces the ammount of code to be written
  • Speedy to create the finished product
Bad:
  • Requirements sometimes are not met as compromises may need to be made to incorporate the components.
  • Difficulties in understanding software that has already been written.