The waterfall method

The waterfall method was the first Software Development Cycle Model used widely in Software Engineering. In this method, the process of software development is divided into separate phases, the outcome of one of phase acts as the input for the next phase sequentially.

A representation of different phases of waterfall model.

SDLC Waterfall Model

The phases of the waterfall method are:

1. Requirement Gathering & Analysis: Ask the client what their needs and expectations are.
2. System Design: Requirements for the System and Hardware specification to define overall architecture.
3. Implementation: Program is developed in small units and tested (Unit Testing).
4. Integration and Testing: All units are put together and tested for faults and failures.
5. Deployment: After functional and non functional testing, the product is delivered.
6. Maintenance: Regular updates and issue resolving.

The advantages of using the Waterfall Method are:

  • Is easy to comprehend
  • Allows for departmentalization and control
  • Each stage can have a predetermined due time

 

 

Although, it has the disadvantage of being unable to go back if one of the steps has a mistake that was discovered in the next stages.

Tech Target. (2016). waterfall model. August 8th, 2016, from Tech Target Website: http://searchsoftwarequality.techtarget.com/definition/waterfall-model

http://www.tutorialspoint.com. (2016). SDLC – Waterfall Model. [online] Available at: http://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm [Accessed 12 Sep. 2016].

Advertisements

Software Configuration Management

Geometric decorationStatistics:

  • 53% of software projects overrun their schedules and budgets
  • 31% are cancelled
  • Only 16% are completed
  • Projects made by large American software companies approximate to only 42% of clients’ requests.

Source: Keyes, J. (2004). Software Configuration Management. Boca Raton: Auerbach

SCM basic tasks:

Development and production of:

  • Configuration identification
  • Configuration change control
  • Configuration status accounting
  • Configuration auditis

Integration: consists on putting together the individual software parts in one single big project.

Types:

  • Merge: parallel development on the same stuff
  • Assembly: development of different pieces

Resultado de imagen para software configuration management

Software Configuration Management started in the 1950s, when configuration management, that was used for hardware and production control, was applied in software development.

Nearly all components that comprise modern information technology, such as Computer Aided Software Engineering (CASE) tools, Enterprise Application Integration (EAI) environments, Extract/Transform/Load (ETL) engines, Warehouses, EII, and Business Intelligence (BI), contain a great deal of metadata as well as his own repository and designer. That’s why metadata CM activities must be used in order to have effective information management.

The purpose of Software Configuration Management is to establish and maintain the integrity of the products of the software project throughout the project’s software life cycle. Software Configuration Management involves identifying configuration items for the software project, controlling these configuration items and changes to them, and recording and reporting status and change activity for these configuration ítems.

Configuration Management is practiced in one or another form as part of any software engineering project where several individuals or organizations have to coordinate their activities.

Software Engineering Institute. Capability Maturity Model Integration, Version 1.1 CMMI for Systems Engineering and Software Engineering (CMMI-SE/SW, V1.1) (CMU/SEI-2000-TR-018, ADA388775). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2000.

The reason for using SCM system is to keep track of the changing entities of a software product in a non degrading state. It provides the framework for interfacing different activities and defining the mechanisms necessary for coordinating parallel activities of different groups.

Software Configuration Management (SCM) A Practical Guide. http://energy.gov/sites/prod/files/cioprod/documents/scmguide.pdf

Best Practices: There are many practices that are advised to achieve proper SCM. What this implies is that just using SCM isn’t a solution, as SCM can be done poorly. Poor SCM won’t provide the results or benefits that one may expect. The first point is to make sure to store your important data in a secure place. Apart from storing the important files, one should also save who made what, when, and save previous versions of the modified file. A common technique that makes the process easier is to break the project down into components. Components are simpler by themselves and allow programmers to work in different parts of the project at the same time. A task that isn’t done by SCM software is to keep track of which versions work together. This means that, if a file in version 3 only works with version 2 of some other file, you have to keep track of the working version.

What Is Software Configuration Management? From: https://www.pearsonhighered.com/samplechapter/0321200195.pdf

Team members:

Andres Barro Encinas A00226225 @A_00226225

Hermess Espínola González A01631677 @herm13s

Miguel Miranda Plascencia A01631246 @mmiranda_96

Gerardo Cesar Juarez Lopez A00226860  @geratrex

Extreme Programming

Extreme programming  (XP) is a popular Agile development process at many companies and industries because it stresses customer satisfaction.

Resultado de imagen para extreme programming photos

In this process you don’t set a due date for the work, it delivers the software you need as you need it, it emphasizes teamwork, everyone is equal no matter what they do. It enables teams to be highly productive.

Agile flow chart

XP improves communication, simplicity, feedback, respect and courage in software development.

  • Simplicity: We do what is needed and asked for, but no more. take small simple steps  to our goal and mitigate failures as they happen.
  • Communication: We communicate face to face daily. We work together on everything.
  • Feedback: We demonstrate our software our software early and listen carefully and make any changes needed.
  • Respect: Everyone is an important member of the team. Everyone contributes value to the project, even if it’s simply enthusiasm.
  • Courage: We tell the truth about progress and estimates. Don’t fear anything because no one ever works alone. Adapt to changes when ever they happen.

XP tries to deliver the system to the customer as early as possible and implement changes as suggested. It has few and very simple rules to follow, that involves planning, managing, designing, coding and testing. You can see more about the rules here.

Extreme Programming flow chart

 

James Gosling interview

Just finished watching Triangulation 245, featuring James Gosling, the creator of Java, one of the most popular programming languages in the world, and the Java Virtual Machine.

Glossing staring right into your soul

Gosling staring right into your soul

He was interested in programming at an early age. The idea of creating Java came from observing how everything was switching from hardware to software, writing code instead of inventing new machines. I also want to point out that he is Canadian.

Canadian-Flag.jpg

#WSQ04-Flipped learning / #AbolishGrades

Flipped learning, flipped classroom, whatever.

Teachers says the whole point of this is not avoid their work, but make students more independent and stop concentrating about the grades, instead start concentrating about learning, and learning is not the same as schooling, in which you memorize think for a few hours, just for the exam, and then you completely forget about it. Or so they say.

Also, the class is for doing “homework” (now known as bookwork) and when you are home, you take the lectures and learn the topics, so you can arrive to the class with doubts, and so you don’t have that doubt for several days until you see the teacher again. And that’s why it’s called flipped.

The downside of this is that the student has to be more independent and self-taught, which is a problem for many, because there is a lot of people that do no  homework and in class they only play videogames (as there are no grades). But on the long run, when students get used to it, it could be a very good teaching way, because you can learn on your own rhythm.

But honestly I don’t care that much, because, whereas you have a good teacher or not, you will learn by yourself, if you want to.

And here’s a good source that I found about flipped classroom http://www.theflippedclassroom.es

Sorry for the long post. Here’s a potato