Software Engineering
COMP 1010 Home > Software Engineering
IntroductionSoftware Engineering is the practice of designing, implementing and creating software by applying the ideologies and principles of software development. Designing the software is usually done in groups (pair programming) and a common programming language (C++, java) is selected for development. Software is designed to meet certain criteria’s such as; it been reliable, efficient, affordable and effective and built to last. It has a systematic approach to the design, test and maintenance of the software by applying engineering toward the software. |
---|
Types of Software Engineering Practice
Agile Software Development
is a group of software practice based on iterative development. It’s one of the most commonly used methodologies. The reason is that it allows for flexibility, quick adjustments to new ideas and is often a flat structure. The agile methodology has a couple of sub practice which are as follow;
Extreme Programming (XP)
Is an agile methodology that requires frequent releases in short period of time following the development cycles. It tends to improve the quality and productivity of customers request and introduces checkpoints for quick adaptation (change or add customers request on the fly).
The concerts of extreme programming methodology are as follows;
Coding – Is truly an important factor (backbone) when developing software. It’s a set of instructions that the computer can interpret to develop something meaningful. Coding is done in pairs (pair programming), where two people sit on one station (computer) to tackle one task. Without coding there is no software or working product.
Testing – Is a required concept in XP, because one cannot be sure if the functions work. During software development there are known to be bugs and design errors. An acceptance test is to verify if the developers’ functions meets the customers’ requirements, while a unit test checks a given function functionality if it works as intended.
Listening – Could also stand for understanding, because developers need to listen to the customers needs and what the system needs to do. Developers need to be able to understand the requirements in order to be able to provide feedback to the customers.
Designing – One cannot start developing software without designing what it should look like and how the functions should behave. You might think it’s possible but along the line you will get to a dead end and have no clue on the next step to take. Well designed software will avoid system dependencies, giving you the options to manipulate parts in the system and not affect other parts.
Scrum
Waterfall
Software Engineering vs. Computer Science
Future Career Options
According to Job Canada's salary wizard, a typical Software Engineer I working in Canada earns a median base salary of $57,902, according to our analysis of data reported by corporate HR departments. Half of the people in this job earn between $48,417 and $67,064.
Some kind of conclusion
Specialization in Software Engineering
References and Useful Links
http://www.cs.concordia.ca/prospectivestudents/softwareengineeringvscomputerscience/
http://blog.mountaingoatsoftware.com/differences-between-scrum-and-extreme-programming
http://ieeexplore.ieee.org.proxy2.lib.umanitoba.ca/stamp/stamp.jsp?tp=&arnumber=841783
http://www.payscale.com/research/CA/Industry=Software_Development/Salary
Previous Page: Networks | Next Page: AI |